#include "math.h"
//#define ABS(X) (X) > 0 ? (X) : (-(X))
//目标位置
s32 TargetPosition = 1234;
//当前位置
s32 NowPosition = 234;

u8 MotorControl(MotorTypedef *Motor)
{
	//记录当前位置和目标位置的中间位置
	s32 TargetMiddle = 0;
	//当前位置和目标位置之间的距离
	s32 PositionDistance = 0;
	//通过算法转换后的控制参数
	s32 MotorControlPara = 0;
	//计算运动距离
	PositionDistance = TargetPosition - NowPosition;
	//计算当前位置和目标位置之间的中间位置作为最大速度位置
	TargetMiddle = TargetPosition / 2 + NowPosition;
	//转换当前位置信息和控制速度之间的关系
	MotorControlPara = PositionDistance - abs((NowPosition - TargetMiddle))
	
	//以上部分完成三角形速度控制，使电机可以在启动的前半部分加速，后半部分减速
	//另外，可以加入最高速度限制，使速度曲线变为梯形。
	if(MotorControlPara >　PositionDistance / 4)
	{
		MotorControlPara = 　PositionDistance / 4;
		
	}
}
/* 
以上部分要注意由于PositionNow参数在电机运动过程中动态变化引起的参数计算问题。
如果有次问题需要在动作前记录动作前的PositionNow值。
*/

#include "stdio.h"

int main(int argc,int *argv)
{
	int i = 0;t = 0;
	for(i = 0;i < 10;i++)
	{
		t += i;
		printf("%d\n",t);
	}
	return 0;
}




